﻿Imports CapaLogica.CL.Aporte
Imports CapaLogica.CL.Tema
Imports CapaLogica.CL.ComentarioAporte



Public Class Aportes
    Inherits System.Web.UI.Page

    Public newIdComenAporte As Integer

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Try
            Dim url As String = Request.Url.AbsolutePath

            Dim accion As String = Request("accion")

            If (accion = "AGREGAR_APORTE" Or accion = "AGREGAR_COMENTARIO") Then
                add_aporte_comentario(accion)

            ElseIf (accion = "RATING") Then
                Dim valor As Integer = CInt(Request("valor"))
                Dim id_afectado As Integer = CInt(Request("id_afectado"))
                GestorAporte.asignarCalificacionAporte(id_afectado, valor)

            ElseIf (accion = "BORRAR_APORTE") Then

                GestorAporte.eliminarAporte(CInt(Request("id_aporte")))

            ElseIf (accion = "BORRAR_COMENTARIO") Then
                GestorComentarioAporte.eliminarComemtarioAporte(CInt(Request("id_comentario")))

            ElseIf (accion = "MODIFICAR_APORTE") Then
                GestorAporte.modificarAporte(CInt(Request("id_aporte")), Request("comentario"))

            ElseIf (accion = "MODIFICAR_COMENTARIO") Then


            End If

        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la cargar la página", Response)
        End Try


    End Sub


    Public Sub add_aporte_comentario(ByVal accion As String)

        Try

            Dim comentario As String = Request("comen")
            Dim id As Integer = CInt(Request("id_afectado"))
            Dim id_return = 0


            If (accion = "AGREGAR_APORTE") Then
                id_return = GestorAporte.crearAporte(comentario, id)
                Response.Write("<input type='hidden' id='id_return' value=" & id_return & ">")

            ElseIf (accion = "AGREGAR_COMENTARIO") Then
                id_return = GestorComentarioAporte.crearComentario(comentario, id)
                Response.Write("<input type='hidden' id='id_return' value=" & id_return & ">")

            End If

        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora agregar un comentario", Response)
        End Try


    End Sub

    Public Function getListaAportes() As List(Of Dictionary(Of String, Object))

        Try
            Dim listaAportes As List(Of Dictionary(Of String, Object))
            listaAportes = GestorAporte.listarAportesDeTema(Request("id_tema"))
            Return listaAportes
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de obtener la lista de aportes", Response)
        End Try

    End Function

    Public Function consultarTema() As String

        Try
            Dim tema As Dictionary(Of String, Object)
            Dim descripcion As String
            Dim id_tema As String = CInt(Request("id_tema"))

            tema = GestorTema.consultarTema(id_tema)

            descripcion = tema("descripcion")

            Return descripcion
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de consultar el tema", Response)
        End Try



    End Function

    Public Function consultarCalificacionTema() As Boolean

        Try
            Dim tema As Dictionary(Of String, Object)
            Dim ind_calificacion As Boolean
            Dim id_tema As String = CInt(Request("id_tema"))

            tema = GestorTema.consultarTema(id_tema)

            ind_calificacion = tema("calificacion")

            Return ind_calificacion
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de consulta la calificación", Response)
        End Try

    End Function

    Public Function consultarIdPro() As Boolean
        Try
            Dim tema As Dictionary(Of String, Object)
            Dim ind_pro As Boolean
            Dim id_tema As String = CInt(Request("id_tema"))

            tema = GestorTema.consultarTema(id_tema)

            ind_pro = tema("esDuenio")

            Return ind_pro
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de consultar el tema", Response)

        End Try

    End Function

    Public Function consultarEstado() As Boolean

        Try

            Dim tema As Dictionary(Of String, Object)
            Dim estado As Boolean
            Dim id_tema As String = CInt(Request("id_tema"))

            tema = GestorTema.consultarTema(id_tema)

            estado = tema("abierto")

            Return estado
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de consultar el tema", Response)
        End Try


    End Function

    Public Function consultarCantiMax() As String
        Try
            Dim cantidad As Integer = GestorTema.cantidadAportesDeEstudiante(Session("id"), Request("id_tema"))
            Return cantidad
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de consultar el tema", Response)
        End Try

    End Function


    Public Function get_HtmlForo(ByVal ID_APORTE As String, ByVal ID_PADRE As String, ByVal NOMBRE_USUARIO As String, ByVal ROL As String, ByVal ID_USER As Integer,
    ByVal FECHA As String, ByVal COMENTARIO As String, ByVal TIPO As Boolean, ByVal IND_PRO As Boolean, ByVal NOTA As Integer, ByVal CALI As Boolean, ByVal ESTADO As Boolean)

        Try



            Dim html As String
            Dim indRatingOn As String = "N"
            Dim accionBlog As String

            ''Si es el mismo usuario la accion al blog cambia
            If (Session("id") = ID_USER) Then

                accionBlog = "MiBlog"
            Else
                accionBlog = "visitante"
            End If


            FECHA = FECHA.Substring(0, 10)

            If (IND_PRO) Then
                indRatingOn = "S"
            End If


            If (TIPO) Then
                html = "<div id='aporte_" & ID_APORTE & "' class='content_foro' name='0'>" &
                "<div style='width:600px;height: 25px'>"


                ''Si es el mismo usuario o el profesor se habilita la opción de borrar comentario
                If (Session("id") <> ID_USER And IND_PRO And CALI And ESTADO) Then
                    html = html & "<div style='float:right' class='rating' data-role='rating' id='" & ID_APORTE & "' name='rating_" & ID_APORTE & "'></div>" &
                    "<input type='hidden' id='nota_" & ID_APORTE & "' value='" & NOTA & "'/><input type='hidden' id='nota_tipo_" & ID_APORTE & "' value='" & indRatingOn & "'/>"
                End If


                ''Si es el mismo usuario o el profesor se habilita la opción de borrar comentario
                If (Session("id") = ID_USER Or IND_PRO And ESTADO) Then
                    html = html & "<img id='" & ID_APORTE & "' class='iconsForoAporte aporte_del' src='images/delete.jpg' title='Borrar aporte'/>"
                End If

                ''Si es el mismo usuario habilita la opción de de modificar
                If (Session("id") = ID_USER And ESTADO) Then
                    html = html & "<img id='" & ID_APORTE & "' class='iconsForoAporte aporte_mod inline' src='images/pencil.jpg' title='Modificar aporte' href='#inline_content'/>"
                End If

                html = html & "</div>" &
                "<div class='lbox_n2' id='div_aporte_" & ID_APORTE & "'>" &
                  "<!--Info del usuario-->" &
                   "<div class='info_user_n2'>" &
                    "<div align='center'>" &
                     "<img id='" & ID_APORTE & "' name='" & accionBlog & "' class='fotos_user_n1' onclick='toBlog(this.id,this.name)'  src='images/user_default.jpg' alt=''/>" &
                     "<p>" & NOMBRE_USUARIO & " / " & ROL & "</p>" &
                    "</div>" &
                   "</div>" &
                   "<!--Encabezado-->" &
                   "<div class='encab_foro'>" &
                    "<p style='text-align:right'>" & FECHA & "</p>" &
                   "</div>" &
                   "<p id='des_aporte_" & ID_APORTE & "'>" &
                     COMENTARIO &
                    "</p>" &
                   "<!--Footer-->" &
                   "<div align='right'>"

                If (ESTADO) Then
                    html = html & "<a  id='" & ID_APORTE & "' class='inline responder' href='#inline_content' name ='n2'>Responder</a>"
                End If

                html = html & "</div></div></div>"

            Else

                html = "<div class='comentario_n3' id='comentario_" & ID_APORTE & "' name='" & ID_PADRE & "'>"

                ''Si es el mismo usuario o el profesor se habilita la opción de borrar comentario
                If (Session("id") = ID_USER Or IND_PRO And ESTADO) Then
                    html = html & "<img name='N3' id='" & ID_APORTE & "' class='iconsForoAporte comen_del' src='images/delete.jpg' title='Borrar comentario'/>"
                End If


                html = html & "<div class='lbox_n3' id='aporte_n3_" & ID_APORTE & "'>" &
           "<!--Info del usuario-->" &
            "<div class='info_user_n3'>" &
             "<div align='center'>" &
              "<img id='" & ID_APORTE & "' name='" & accionBlog & "' class='fotos_user_n3' onclick='toBlog(this.id,this.name)' src='images/user_default.jpg' alt=''/>" &
              "<p style='font-size:11px'>" & NOMBRE_USUARIO & " " & ROL & "</p>" &
             "</div>" &
            "</div>" &
            "<!--Encabezado-->" &
            "<div class='encab_foro_n3'>" &
             "<p style='text-align:right'>" & FECHA & "</p>" &
            "</div>" &
            "<!--Contenido-->" &
            "<div id='content_foro'>" &
             "<p>" &
              COMENTARIO &
             "</p>" &
            "</div>" &
          "</div></div>"

            End If

            Return html

        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de cargar el nuevo aporte/comentario", Response)
        End Try

    End Function
End Class